package ejb.cbm.admin.entity;

import java.util.Date;

import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name="TRANSACCIONSEGMENTO")

public class TransaccionSegmentoEntity  implements java.io.Serializable {

    // Fields    

     private TransaccionSegmentoEntityId id;
     private Double montosinautorizacionsoles;
     private Double montoconautorizacionsoles;
     private Double montosinautorizaciondolares;
     private Double montoconautorizaciondolares;
     private Double montosinautorizacioneuros;
     private Double montoconautorizacioneuros;
     private String usuarioregistro;
     private Date fecharegistro;
     private String usuariomodificacion;
     private Date fechamodificacion;
     private TransaccionEntity transaccion;
     private ParametroEntity segmento;

    // Constructors

    /** default constructor */
    public TransaccionSegmentoEntity() {
    }

	/** minimal constructor */
    public TransaccionSegmentoEntity(TransaccionSegmentoEntityId id, String usuarioregistro, Date fecharegistro, String usuariomodificacion, Date fechamodificacion) {
        this.id = id;
        this.usuarioregistro = usuarioregistro;
        this.fecharegistro = fecharegistro;
        this.usuariomodificacion = usuariomodificacion;
        this.fechamodificacion = fechamodificacion;
    }
    
    /** full constructor */
    public TransaccionSegmentoEntity(TransaccionSegmentoEntityId id, Double montosinautorizacionsoles, Double montoconautorizacionsoles, Double montosinautorizaciondolares, Double montoconautorizaciondolares, Double montosinautorizacioneuros, Double montoconautorizacioneuros, String usuarioregistro, Date fecharegistro, String usuariomodificacion, Date fechamodificacion) {
        this.id = id;
        this.montosinautorizacionsoles = montosinautorizacionsoles;
        this.montoconautorizacionsoles = montoconautorizacionsoles;
        this.montosinautorizaciondolares = montosinautorizaciondolares;
        this.montoconautorizaciondolares = montoconautorizaciondolares;
        this.montosinautorizacioneuros = montosinautorizacioneuros;
        this.montoconautorizacioneuros = montoconautorizacioneuros;
        this.usuarioregistro = usuarioregistro;
        this.fecharegistro = fecharegistro;
        this.usuariomodificacion = usuariomodificacion;
        this.fechamodificacion = fechamodificacion;
    }

    // Property accessors
    @EmbeddedId
    @AttributeOverrides( {
        @AttributeOverride(name="codigotransaccion", column=@Column(name="CODIGOTRANSACCION", unique=false, nullable=false, insertable=true, updatable=true, precision=8, scale=0) ), 
        @AttributeOverride(name="codigosegmento", column=@Column(name="CODIGOSEGMENTO", unique=false, nullable=false, insertable=true, updatable=true, precision=8, scale=0) ) } )
    public TransaccionSegmentoEntityId getId() {
        return this.id;
    }
    
    public void setId(TransaccionSegmentoEntityId id) {
        this.id = id;
    }
    
    @Column(name="MONTOSINAUTORIZACIONSOLES", unique=false, nullable=true, insertable=true, updatable=true, precision=8)
    public Double getMontosinautorizacionsoles() {
        return this.montosinautorizacionsoles;
    }
    
    public void setMontosinautorizacionsoles(Double montosinautorizacionsoles) {
        this.montosinautorizacionsoles = montosinautorizacionsoles;
    }
    
    @Column(name="MONTOCONAUTORIZACIONSOLES", unique=false, nullable=true, insertable=true, updatable=true, precision=8)
    public Double getMontoconautorizacionsoles() {
        return this.montoconautorizacionsoles;
    }
    
    public void setMontoconautorizacionsoles(Double montoconautorizacionsoles) {
        this.montoconautorizacionsoles = montoconautorizacionsoles;
    }
    
    @Column(name="MONTOSINAUTORIZACIONDOLARES", unique=false, nullable=true, insertable=true, updatable=true, precision=8)
    public Double getMontosinautorizaciondolares() {
        return this.montosinautorizaciondolares;
    }
    
    public void setMontosinautorizaciondolares(Double montosinautorizaciondolares) {
        this.montosinautorizaciondolares = montosinautorizaciondolares;
    }
    
    @Column(name="MONTOCONAUTORIZACIONDOLARES", unique=false, nullable=true, insertable=true, updatable=true, precision=8)
    public Double getMontoconautorizaciondolares() {
        return this.montoconautorizaciondolares;
    }
    
    public void setMontoconautorizaciondolares(Double montoconautorizaciondolares) {
        this.montoconautorizaciondolares = montoconautorizaciondolares;
    }
    
    @Column(name="MONTOSINAUTORIZACIONEUROS", unique=false, nullable=true, insertable=true, updatable=true, precision=8)
    public Double getMontosinautorizacioneuros() {
        return this.montosinautorizacioneuros;
    }
    
    public void setMontosinautorizacioneuros(Double montosinautorizacioneuros) {
        this.montosinautorizacioneuros = montosinautorizacioneuros;
    }
    
    @Column(name="MONTOCONAUTORIZACIONEUROS", unique=false, nullable=true, insertable=true, updatable=true, precision=8)
    public Double getMontoconautorizacioneuros() {
        return this.montoconautorizacioneuros;
    }
    
    public void setMontoconautorizacioneuros(Double montoconautorizacioneuros) {
        this.montoconautorizacioneuros = montoconautorizacioneuros;
    }
    
    @Column(name="USUARIOREGISTRO", unique=false, nullable=false, insertable=true, updatable=true, length=30)
    public String getUsuarioregistro() {
        return this.usuarioregistro;
    }
    
    public void setUsuarioregistro(String usuarioregistro) {
        this.usuarioregistro = usuarioregistro;
    }
    
    @Temporal(TemporalType.DATE)
    @Column(name="FECHAREGISTRO", unique=false, nullable=false, insertable=true, updatable=true, length=7)
    public Date getFecharegistro() {
        return this.fecharegistro;
    }
    
    public void setFecharegistro(Date fecharegistro) {
        this.fecharegistro = fecharegistro;
    }
    
    @Column(name="USUARIOMODIFICACION", unique=false, nullable=false, insertable=true, updatable=true, length=30)
    public String getUsuariomodificacion() {
        return this.usuariomodificacion;
    }
    
    public void setUsuariomodificacion(String usuariomodificacion) {
        this.usuariomodificacion = usuariomodificacion;
    }
    
    @Temporal(TemporalType.DATE)
    @Column(name="FECHAMODIFICACION", unique=false, nullable=false, insertable=true, updatable=true, length=7)
    public Date getFechamodificacion() {
        return this.fechamodificacion;
    }
    
    public void setFechamodificacion(Date fechamodificacion) {
        this.fechamodificacion = fechamodificacion;
    }
    
    @ManyToOne
    @JoinColumn(name="codigotransaccion")
    public TransaccionEntity getTransaccion() {
        return this.transaccion;
    }
    
    public void setTransaccion(TransaccionEntity transaccion) {
        this.transaccion = transaccion;
    }
    
    @ManyToOne
    @JoinColumn(name="codigosegmento")
    public ParametroEntity getSegmento() {
        return this.segmento;
    }
    
    public void setSegmento(ParametroEntity segmento) {
        this.segmento = segmento;
    }
}